// node中的中间件代理，作用是设置代理转发
// 获取库中的代理工厂函数，
const { createProxyMiddleware } = require("http-proxy-middleware")
// 导出一个函数，并将一个express实例作为参数
module.exports = function(app){
    /* 
        app.use() 方法挂载代理中间件
        调用代理工厂函数，第一个参数表示所有以此参数为开头的http请求，都将被此代理中间件处理
        代理中间件的相关配置： 
            + target： 设置目标服务器URL，所有的匹配的请求都将发送到此服务器中
            + changeorigin: 设置为true时，请求头中的host字段都将被替换成目标服务器的主机名
            + ws： 设置为true时，不仅http请求会被代理，websocket也会被透明转发
            + path Rewrite： 将匹配到的请求路经重写，例如： /jian/some/list 请求，实际发送到服务器中的路经： /some/list
    */
    app.use(
        createProxyMiddleware("/jian" , {
            target : "https://www.jianshu.com/asimov",
            changeOrigin: true ,
            ws: true ,
            pathRewrite : {"^/jian" : ""}
        })
    );
   
}